home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / util / rexx / tritonrexx376.lha / TritonRexx / Programme / ChangeSTARTPRI.rexx < prev    next >
OS/2 REXX Batch file  |  1995-09-17  |  11KB  |  313 lines

  1. /*
  2.   $VER: ChangeSTARTPRI.rexx V1.0 (7.9.95)   Copyright in 1995 by Nils Goers
  3.  
  4.   This ARexx script was written using the tritonrexx.library and
  5.   rexxtricks.library from Juergen Kohrmeyer <j_kohrmeyer@wilam.north.de>.
  6.  
  7.   Use it to edit the STARTPRI-Tooltype from your WBStartup-Tools.
  8. */
  9.  
  10. /* temporary Filename */
  11. OutPut = "t:ToolsList"
  12.  
  13. /* directory shown on startup */
  14. Directory = "Sys:WBStartup/"
  15. /************************************************
  16.  * Please don't change anything under this line *
  17.  ************************************************/
  18. NL = '0a'x
  19.  
  20. PARSE ARG PubScreen
  21.  
  22. IF PubScreen == "?" THEN DO
  23.  OPTIONS PROMPT "PUBSCREEN/K: "
  24.  PARSE PULL PubScreen
  25. END
  26.  
  27. IF PubScreen == "" THEN
  28.    PubScreen  = "Workbench"
  29.  
  30. IF ~SHOW('LIBRARIES','tritonrexx.library') THEN DO
  31.    IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
  32.       SAY 'Kann die <tritonrexx.library> nicht oeffnen!'
  33.       EXIT(10)
  34.    END
  35. END
  36.  
  37. IF ~SHOW('LIBRARIES','rexxtricks.library') THEN DO
  38.    IF ~ADDLIB('rexxtricks.library',10,-30,0) THEN DO
  39.       SAY 'Kann die <rexxtricks.library> nicht oeffnen!'
  40.       EXIT(10)
  41.    END
  42. END
  43.  
  44.  
  45. CALL _GetInfoFiles    /* Hier holen wir uns die .info-Files und das
  46.                            dazu passende STARTPRI-ToolType */
  47. windowtags =   WindowID(1),
  48.                PubScreenName(PubScreen),
  49.                WindowTitle('Change STARTPRI'),
  50.                         BeginMenu("Project"),
  51.                         MenuItem("A_About",6),
  52.                         MenuItem("About Triton",7) ItemBarlabel,
  53.                         MenuItem("C_Change Dir",9) ItemBarlabel,
  54.                         MenuItem("Q_Quit",8),
  55.                   'VertGroupAC Space HorizGroup Space',
  56.                         CenteredText3("Program "),
  57.                         CenteredText3("Priority"),
  58.                       'Space EndGroup',
  59.                       'VertGroupAC EndGroup HorizGroupAC Space',
  60.                          ListSS('Liste',4,0,0),
  61.                      'Space',
  62.                       ListSS('Prio',10,0,0),
  63.                     'Space EndGroup',
  64.                   'HorizGroup Space',
  65.                         ClippedTextBox("",80),
  66.                     'Space EndGroup',
  67.                   'VertGroupAC Space EndGroup HorizGroupE Space',
  68.                         'SpaceB',
  69.                         TextID("_Priority",1),
  70.                     'Space EndGroup',
  71.                   'VertGroupAC Space EndGroup HorizGroupAC Space',
  72.                         SliderGadget(0,255,0,1) 'TRAT_Disabled 1',
  73.                     'Space EndGroup',
  74.                   'VertGroupAC Space EndGroup HorizGroupAC Space',
  75.                         ButtonR("_OK",5),
  76.                         'Space',
  77.                         Button("_Save",2),
  78.                         'Space',
  79.                         ButtonE("_Cancel",3),
  80.                         'SpaceB',
  81.                         GetDrawerButton(9),
  82.                     'Space',
  83.                     'EndGroup',
  84.                     'Space',
  85.                     'EndGroup',
  86.                'EndProject'
  87.  
  88. /*
  89. ** Unterbrechungssignale
  90. */
  91.  
  92. SIGNAL ON break_c
  93. SIGNAL ON failure
  94. SIGNAL ON halt
  95. SIGNAL ON ioerr
  96. SIGNAL ON syntax
  97.  
  98. app = TR_CREATEAPP('TRCA_Name Listview')
  99.  
  100. IF app ~= '00000000'x THEN DO
  101.  
  102.    window = TR_OPENPROJECT(app,windowtags)
  103.    WindowProject=C2D(window) /* zum Locken des Fensters bei About */
  104.  
  105.    IF window ~= '00000000'x THEN DO
  106.       ende = 0
  107.  
  108.       DO WHILE ende ~= 1
  109.          CALL TR_WAIT(app,'')
  110. /* 1 = Slider
  111.    2 = Gadget _Save
  112.    3 = Gadget _Cancel
  113.    4 = ListView
  114.    5 = Gadget _OK
  115.    6 = Menu About
  116.    7 = Menu About Triton
  117.    8 = Menu Quit
  118.    9 = GetDrawer Image (Menu ChangeDir)
  119. */
  120.          DO WHILE TR_HANDLEMSG(app,'event')
  121.             IF event.trm_class = 'TRMS_ACTION' THEN DO
  122.                SELECT
  123.                   WHEN event.trm_id = 2 THEN DO
  124.                    DO i = 1 TO Prio.0
  125.                     IF prio.i ~= new.i THEN
  126.                     CALL SETTOOLTYPEVALUE(Directory||Tools.i,"STARTPRI",new.i)
  127.                    END
  128.                   END
  129.                   WHEN event.trm_id = 3 THEN DO
  130.                    Quit=TR_EasyRequest(app,"Really Quit?"NL"(without changes!)",,
  131.                                       "_Yes|_No","TREZ_Title Quit TREZ_LockProject" WindowProject)
  132.                     IF Quit == 1 THEN DO
  133.                      CALL TR_CLOSEPROJECT(window)
  134.                      CALL TR_DELETEAPP(app)
  135.                      EXIT(0)
  136.                     END
  137.                   END
  138.  
  139.                   WHEN event.trm_id = 5 THEN DO
  140.                    nummer=TR_GETATTRIBUTE(window,4,TRAT_Value)+1
  141.                     sliderNumber = new.nummer+128
  142.                      /* Name von Tool in Gadget eintragen */
  143.                      CALL TR_SETATTRIBUTE(window,80,'TRAT_Text',Tools.nummer)
  144.                      /* Slider Gadget aktualisieren */
  145.                      CALL TR_SETATTRIBUTE(window,1,'TRAT_Disabled',0)
  146.                     distest=tools.nummer
  147.                      CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',sliderNumber)
  148.                   END
  149.  
  150.                   WHEN event.trm_id = 6 THEN DO
  151.                    CALL TR_EasyRequest(app,"ChangeSTARTPRI V1.0 (7.9.95)",
  152.                    NL NL"(c) 1995 Nils Goers <N.Goers@Art-Line.Art-Line.de>",
  153.                    NL"- freely distributable -","OK","TREZ_Title About TREZ_LockProject" WindowProject)
  154.                   END
  155.  
  156.                   WHEN event.trm_id = 7 THEN DO
  157.                    CALL TR_EasyRequest(app,"This application uses the Triton GUI creation system",
  158.                    NL"Triton is (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de>",
  159.                 NL NL"This application was written using the tritonrexx.library",
  160.                    NL"tritonrexx.library is (C) by Juergen Kohrmeyer <j_kohrmeyer@wilam.north.de>",,
  161.                    "OK","TREZ_Title" '"About Triton"' "TREZ_LockProject" WindowProject)
  162.                   END
  163.  
  164.                   WHEN event.trm_id = 8 THEN DO
  165.                    Quit=TR_EasyRequest(app,"Save changes?",,
  166.                                       "_Yes|_No","TREZ_Title Quit TREZ_LockProject" WindowProject)
  167.                     IF Quit == 1 THEN DO
  168.                      DO i = 1 TO Liste.0
  169.                       IF prio.i ~= new.i THEN
  170.                       CALL SETTOOLTYPEVALUE(Directory||Tools.i,"STARTPRI",new.i)
  171.                      END
  172.                     END
  173.                      CALL TR_CLOSEPROJECT(window)
  174.                      CALL TR_DELETEAPP(app)
  175.                      EXIT(0)
  176.                   END
  177.  
  178.                  WHEN event.trm_id = 9 THEN DO
  179.                   bool = ASL_RequestFile(window,Dir,,
  180.                                "ASLFR_PubScreenName" PubScreen,
  181.                                "ASLFR_InitialDrawer" Directory,
  182.                                "ASLFR_DrawersOnly" 1,
  183.                                "ASLFR_TitleText" '"New Directory?"')
  184.                    IF bool = 1 THEN DO
  185.                     IF WORDLENGTH(Dir.1,1) ~= LASTPOS(":",dir.1) THEN
  186.                       Dir.1 = Dir.1||"/"
  187.                   Directory = dir.1
  188.                   CALL _GetInfoFiles
  189.                   CALL TR_SETATTRIBUTE(window,10,'TROB_Listview',New)
  190.                     END
  191.                  END
  192.  
  193.                   OTHERWISE
  194.                      NOP
  195.                END
  196.             END
  197.             IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  198.  
  199.                SELECT
  200.                   WHEN event.trm_id = 10 THEN DO
  201.                      nummer = event.trm_data+1
  202.                 IF distest ~= tools.nummer THEN
  203.                                 CALL TR_SETATTRIBUTE(window,1,'TRAT_Disabled',1)
  204.                      CALL TR_SETATTRIBUTE(window,4,'TRAT_Value',nummer-1)
  205.                    IF BITAND(D2X(event.trm_qualifier),'0200'x) = '0200'x THEN DO
  206.                      nummer = event.trm_data+1
  207.                     sliderNumber = new.nummer+128
  208.                      /* Name von Tool in Gadget eintragen */
  209.                      CALL TR_SETATTRIBUTE(window,80,'TRAT_Text',Tools.nummer)
  210.                      /* Slider Gadget aktualisieren */
  211.                      CALL TR_SETATTRIBUTE(window,1,'TRAT_Disabled',0)
  212.                     distest=tools.nummer
  213.                      CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',SliderNumber)
  214.                     END
  215.                   END
  216.  
  217.                   WHEN event.trm_id = 4 THEN DO
  218.                      nummer = event.trm_data+1
  219.                      CALL TR_SETATTRIBUTE(window,10,'TRAT_Value',nummer-1)
  220.                 IF distest ~= tools.nummer THEN
  221.                                 CALL TR_SETATTRIBUTE(window,1,'TRAT_Disabled',1)
  222.                    IF BITAND(D2X(event.trm_qualifier),'0200'x) = '0200'x THEN DO
  223.                     sliderNumber = new.nummer+128
  224.  
  225.                      /* Name von Tool in Gadget eintragen */
  226.                      CALL TR_SETATTRIBUTE(window,80,'TRAT_Text',Tools.nummer)
  227.                      /* Slider Gadget aktualisieren */
  228.                      CALL TR_SETATTRIBUTE(window,1,'TRAT_Disabled',0)
  229.                     distest=tools.nummer
  230.                      CALL TR_SETATTRIBUTE(window,1,'TRAT_Value',SliderNUmber)
  231.                     END
  232.                   END
  233.  
  234.                  WHEN event.trm_id = 1 THEN DO
  235.                      Del=WORDS(new.Nummer)
  236.                      new.Nummer=DELWORD(new.Nummer,Del)
  237.                      New.Nummer = event.trm_data-128
  238.                     CALL TR_SETATTRIBUTE(window,10,'TROB_Listview',New)
  239.                  END
  240.  
  241.                   OTHERWISE
  242.                      NOP
  243.                END
  244.             END
  245.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
  246.                nummer = TR_GETATTRIBUTE(window,10,'TRAT_Value')+1
  247.                ende = 1
  248.             END
  249.          END
  250.       END
  251.  
  252.       CALL TR_CLOSEPROJECT(window)
  253.    END
  254.  
  255.    CALL TR_DELETEAPP(app)
  256. END
  257. EXIT(0)
  258. _GetInfoFiles:
  259. ADDRESS COMMAND "c:List" Directory"#?.info QUICK SORT N NOHEAD >"OutPut
  260. IF READFILE(OutPut,Tools) == 0 THEN EXIT(5)
  261.  
  262. /* Tools = Name der Tools OHNE .info
  263.    Prio  = originale Prioritaet der einzelnen Tools
  264.    New   = hier werden die geaenderten Prioritaeten spaeter eingetragen!
  265.    Liste = Liste mit Toolnamen und Prioeritaet fuer das ListView */
  266.  
  267. Liste.0 = Tools.0
  268. Prio.0  = Tools.0
  269. new.0  = Tools.0
  270.  
  271. DO i = 1 to Tools.0
  272.  Laenge = WORDLENGTH(Tools.i,1)
  273.  IF Laenge == 0 THEN ITERATE
  274.  
  275. Tools.i=LEFT(Tools.i,Laenge-5)
  276. Laenge=Laenge-5
  277. Prio=GETTOOLTYPEVALUE(Directory||Tools.i,"STARTPRI")
  278. IF Prio ~= "" THEN
  279.  DO
  280.   New.i = Prio
  281.   Prio.i = Prio
  282.   Rest = 32-Laenge
  283.   Liste.i = INSERT("",Tools.i,Rest,Laenge," ")
  284.  END
  285.   ELSE
  286.    DO
  287.      Prio = 0
  288.      New.i = Prio
  289.      Prio.i = Prio
  290.      Rest = 32-Laenge
  291.      Liste.i = INSERT("",Tools.i,Rest,Laenge," ")
  292.    END
  293. END
  294. ADDRESS COMMAND "c:delete" OutPut "QUIET"
  295. RETURN
  296. /*******************************************************************************
  297. ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
  298. *******************************************************************************/
  299.  
  300. break_c:
  301. failure:
  302. halt:
  303. ioerr:
  304. syntax:
  305.    SAY '+++ Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)
  306.    SAY SOURCELINE(sigl)
  307.  
  308.    IF app ~= '00000000'x THEN
  309.       CALL TR_DELETEAPP(app)
  310.  
  311.    EXIT(10)
  312. /*EOS*/
  313.